package com.syh.leecode.array;

/**
 * 给你一个数组 nums 。数组「动态和」的计算公式为：runningSum[i] = sum(nums[0]…nums[i]) 。
 * 请返回 nums 的动态和。
 */
public class RunningSumOf1dArray{
    public static void main(String[] args) {

    }

    /**
     * 简单的遍历
     * 时间复杂组 O(N)
     * 空间复杂度 O(N)
     */
    public int[] runningSumV1(int[] nums) {
        int []result = new int[nums.length];
        int j = 0;
        for(int i=0;i<nums.length;i++){
            j+= nums[i];
            result[i] = j;
        }
        return result;
    }
    /**
     * 优化V1的方法，可以在原数组中直接操作数据
     * 空间复杂度 O(1)
     * 空间复杂度 O(n)
     */
    public int[] runningSumV2(int[] nums) {
        for(int i=1;i<nums.length;i++){
            nums[i]+=nums[i-1];
        }
        return nums;
    }
}
